package Object类.hashcode方法;

import java.util.Objects;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 姚东名
 * Date: 2024-06-19
 * Time: 16:03
 */
//像重写equals方法一样，我们也可以重写hashcode()方法。此时我们再来看看。
class Person2 {
    private String name;
    private int age;

    public Person2(String name, int age) {
        this.name = name;
        this.age = age;
    }

    @Override
    public int hashCode() {
        return Objects.hash(name, age);
    }
}
public class TestDemo2 {
    public static void main(String[] args) {
        Person2 person1 = new Person2("张三", 10);
        Person2 person2 = new Person2("张三", 10);

        System.out.println(person1.hashCode());
        System.out.println(person2.hashCode());
    }
}

/*
执行结果：
24022530
24022530
 */

/*
注意事项：哈希值一样。
结论：
1. hashcode方法用来确定对象在内存中存储的位置是否相同
2. 事实上hashcode()在散列表中才有用，在其他情况下没有，在散列表中hashCode()的作用是获取对象的散列码，进而确定该对象在散列表中的位置。
 */